package client_iot_api_gateway

import (
	bytes "bytes"
	time "time"

	git_querycap_com_tools_datatypes "git.querycap.com/tools/datatypes"
	github_com_go_courier_httptransport_httpx "github.com/go-courier/httptransport/httpx"
	github_com_go_courier_sqlx_v2_datatypes "github.com/go-courier/sqlx/v2/datatypes"
	github_com_go_courier_statuserror "github.com/go-courier/statuserror"
)

type AddGroupErr struct {
	// 设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 错误信息
	Error string `json:"error"`
}

type BatchOpDeviceGroupResp struct {
	// 执行错误信息,如果这个数组为空则所有都执行成成功
	ErrorInfo []AddGroupErr `json:"errorInfo"`
}

type BytesBuffer = bytes.Buffer

type ClientTagGetGroupInfoTagsResp struct {
	// 分页数据
	Data []ClientTagGroupInfoTag `json:"data"`
	// 总数
	Total int64 `json:"total"`
}

type ClientTagGroupInfoTag struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 分组id
	GroupID uint64 `json:"groupID,string"`
	// 唯一ID
	ID uint64 `json:"id,string"`
	// 标签
	TagKey string `json:"tagKey"`
	// 标签值
	TagValue string `json:"tagValue"`
	// 顶级组织ID
	TopGroupID string `json:"topGroupID"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type CmdSendData struct {
	// 命令定义ID,命令定义的唯一标示
	CommandDefineID uint64 `json:"commandDefineId,string"`
	// 设备ID
	DeviceIDs GitQuerycapComToolsDatatypesSFIDs `json:"deviceIDs"`
	// 命令参数
	Parameters map[string]string `json:"parameters,omitempty"`
}

type Command struct {
	// 命令定义ID
	CommandDefineID uint64 `json:"commandDefineId"`
	// 整个命令的字符串,这里是完整的执行命令字符串,包括了命令的称和所有参数
	CommandStr string `json:"commandStr"`
	// 创建时间既是执行时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 设备定义ID冗余字段,为了加速查询
	DeviceDefineID uint64 `json:"deviceDefineId"`
	// 设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 结果返回时间
	FinishTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"finishTime"`
	// 内部ID
	ID string `json:"id"`
	// 命令返回码
	ReturnCode uint32 `json:"returnCode"`
	// 命令返回字符串,包括了所有命令返回的内容
	ReturnContent string `json:"returnContent"`
	// 执行人
	User string `json:"user"`
}

type CommandDefine struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 设备定义ID
	DeviceDefineID uint64 `json:"deviceDefineId,string"`
	// 内部ID
	ID uint64 `json:"id,string"`
	// 命令名称
	Name string `json:"name"`
	// 命令种类．１下发　2上行
	Type uint32 `json:"type"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type CommandDefineCreateData struct {
	// 设备描述
	Descriptions string `json:"descriptions"`
	// 设备定义ID,唯一标示一种设备
	DeviceDefineID uint64 `json:"deviceDefineId,string"`
	// 设备名称
	Name string `json:"name"`
	// 命令参数列表
	Parameters []ParameterDefineData `json:"parameters"`
	// 命令类型 1:下发命令 2:上行命令
	Type uint32 `json:"type"`
}

type CommandDefineCreateResp struct {
	// 命令基本信息创建错误信息，如果为空则是成功
	CommandBaseCreateErr string `json:"commandBaseCreateErr"`
	// 所创建命令的ID
	CommandID uint64 `json:"commandId,string"`
	// 命令参数创建错误，一个参数错误对应一条记录,如果为空则没有错误
	ParameteCreaterErrs []ParamaterCreateErr `json:"parameteCreaterErrs"`
}

type CommandDefineDetailsDB struct {
	// 基本信息
	BaseInfo CommandDefine `json:"baseInfo"`
	// 绑定参数
	BindParameters []ParameterDefine `json:"bindParameters"`
	// 执行参数
	ExeParameters []ParameterDefine `json:"exeParameters"`
	// 返回参数
	RetParameters []ParameterDefine `json:"retParameters"`
}

type CommandDefineUpdateData struct {
	// 命令定义ID
	CommandDefineID uint64 `json:"commandDefineId,string"`
	// 命令描述
	Descriptions string `json:"descriptions"`
	// 命令名称
	Name string `json:"name"`
	// 命令类型 1:下发命令 2:上行命令
	Type uint32 `json:"type"`
}

type CommandQueryResp struct {
	// 命令记录
	Commands []Command `json:"commands"`
	// 总数
	Total int32 `json:"total"`
}

type CreateDeviceGroupData struct {
	// 描述
	Descriptions string `json:"descriptions,omitempty" validate:"@string[1,300]"`
	// 图标地址
	IconUrl string `json:"iconUrl,omitempty"`
	// 名称
	Name string `json:"name" validate:"@string[1,50]"`
	// 父组织id
	ParentGroupId uint64 `json:"parentGroupId,string,omitempty"`
}

type Device struct {
	// 业务来源，必填字段
	BusinessFrom string `json:"businessFrom"`
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 数据更新时间,和CreatedAt不同,CreatedAt是本条DB记录的更新时间,DataUpdateTime是包括设备的扩展数据
	DataUpdateTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"dataUpdateTime"`
	// 删除时间
	DeletedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"deletedAt"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 设备定义ID 这个关系到设备类型
	DeviceDefineID uint64 `json:"deviceDefineId,string"`
	// 产品定义名称
	DeviceDefineName string `json:"deviceDefineName"`
	// 设备分组ID
	DeviceGroupID uint64 `json:"deviceGroupId,string"`
	// 设备唯一标示编码
	DeviceUniqueID string `json:"deviceUniqueId"`
	// 分组名称
	GroupName string `json:"groupName"`
	// 分组状态
	GroupStatus DmsGroupStatus `json:"groupStatus"`
	// 内部ID,关联其它数据结构用
	ID uint64 `json:"id,string"`
	// 是否激活
	Active bool `json:"isActive"`
	// 纬度
	Lat string `json:"lat"`
	// 经度
	Lon string `json:"lon"`
	// 名称
	Name string `json:"name"`
	// 节点类型
	NodeType DmsNodeType `json:"nodeType"`
	// 是否在线
	Online bool `json:"online"`
	// 启用状态
	Opened GithubComGoCourierSqlxV2DatatypesBool `json:"opened"`
	// 是否可以操作
	Operate bool `json:"operate"`
	// 关联状态
	RelevanceType DmsRelevanceType `json:"relevanceType"`
	// 来源
	ShareFrom string `json:"shareFrom"`
	// 被分享的分组名称
	SharedGroupName []string `json:"sharedGroupName"`
	// 被分享分组信息
	SharedGroups []SharedGroup `json:"sharedGroups"`
	// 状态
	Status DmsQueryDeviceType `json:"status"`
	// 标签
	Tag []string `json:"tag"`
	// 顶级组织id
	TopGroupId uint64 `json:"topGroupId,string"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceBasicInfo struct {
	// 是否激活
	Active bool `json:"active"`
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 数据更新时间
	DataUpdateTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"dataUpdateTime"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 设备MN号
	DeviceMN string `json:"deviceMN"`
	// 分组ID
	GroupID uint64 `json:"groupID,string"`
	// 分组状态
	GroupStatus DmsGroupStatus `json:"groupStatus"`
	// 设备ID
	ID uint64 `json:"id,string"`
	// 名称
	Name string `json:"name"`
	// 节点类型
	NodeType DmsNodeType `json:"nodeType"`
	// 是否在线
	Online bool `json:"online"`
	// 启用状态
	Opened GithubComGoCourierSqlxV2DatatypesBool `json:"opened"`
	// 产品ID
	ProductID uint64 `json:"productID,string"`
	// 产品名称
	ProductName string `json:"productName"`
	// 关联状态
	RelevanceType DmsRelevanceType `json:"relevanceType"`
	// 顶级组织ID
	TopGroupID string `json:"topGroupID"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceBriefInfo struct {
	// 设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 纬度
	Lat float64 `json:"lat"`
	// 经度
	Lon float64 `json:"lon"`
	// 设备名
	Name string `json:"name"`
	// 是否在线
	Online bool `json:"online"`
}

type DeviceCountV3 struct {
	// 在线设备数
	OnlineCount int64 `json:"onlineCount"`
	// 产品ID
	ProductID uint64 `json:"productID,string"`
	// 设备总数
	Total int64 `json:"total"`
}

type DeviceCreateV2Body struct {
	// 基础信息
	BaseInfo *DeviceV2BaseInfo `json:"baseInfo"`
	// 附加属性列表
	ExtraPropertyList []DeviceExtraInfo `json:"extraPropertyList,omitempty"`
	// 固定属性列表
	FixedPropertyList GitQuerycapComToolsDatatypesSFIDs `json:"fixedPropertyList,omitempty"`
	// 子设备列表
	SubDeviceIDList GitQuerycapComToolsDatatypesSFIDs `json:"subDeviceIDList,omitempty"`
}

type DeviceDefDetailInDB struct {
	BaseInfo DeviceDefine `json:"baseInfo"`
}

type DeviceDefine struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createTime"`
	// 产品描述
	Descriptions string `json:"descriptions"`
	// 分组ID
	GroupId uint64 `json:"groupId,string"`
	// 图标ObjectId
	IconObjectId uint64 `json:"iconObjectId,string"`
	// 图标地址
	IconUrl string `json:"iconUrl"`
	// 产品ID
	ID uint64 `json:"id,string"`
	// 产品名称 设备归类于某一种产品
	Name string `json:"name"`
	// 新建设备黑白名单默认状态
	NewDeviceBlacklistWhitelistDefaultType DmsBlacklistWhitelistType `json:"newDeviceBlacklistWhitelistDefaultType"`
	// 节点类型
	NodeType DmsNodeType `json:"nodeType"`
	// 产品黑白名单启用状态
	ProductBlacklistWhitelistType DmsBlacklistWhitelistType `json:"productBlacklistWhitelistType"`
	// 产品类型
	ProductType DmsProductType `json:"productType"`
	// 协议类型
	Protocol GitQuerycapComIotCommonTypeHubProtocolType `json:"protocol"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updateTime"`
}

type DeviceDefineCreateDataV1 struct {
	// 属性
	PropertyData []ProductPropertyValueData `json:"data,omitempty"`
	// 描述
	Descriptions string `json:"descriptions,omitempty" validate:"@string[0,200]"`
	// 分组id
	GroupId uint64 `json:"groupId,string"`
	// 图标地址
	IconUrl string `json:"iconUrl"`
	// 名称
	Name string `json:"name" validate:"@string[1,50]"`
	// 新建设备黑白名单默认状态
	NewDeviceBlacklistWhitelistDefaultType DmsBlacklistWhitelistType `json:"newDeviceBlacklistWhitelistDefaultType"`
	// 节点类型
	NodeType DmsNodeType `default:"DIRECT" json:"nodeType"`
	// 产品黑白名单启用状态
	ProductBlacklistWhitelistType DmsBlacklistWhitelistType `json:"productBlacklistWhitelistType"`
	// 协议类型
	Protocol GitQuerycapComIotCommonTypeHubProtocolType `json:"protocol,omitempty"`
	// 产品类型
	Type DmsProductType `default:"NORMAL" json:"type,omitempty"`
}

type DeviceDefineDetailGetResp struct {
	// 所属产品下有多少设备
	DeviceCount int32 `json:"deviceCount"`
	// 产品详细信息
	DeviceDefDetail DeviceDefDetailInDB `json:"deviceDefDetail"`
	// 离线设备
	DeviceOffline int32 `json:"deviceOffline"`
	// 在线设备
	DeviceOnline int32 `json:"deviceOnline"`
	// 消息总数
	MsgTotal int32 `json:"msgTotal"`
	// 产品属性信息
	ProductProperties []ProductProperty `json:"productProperties"`
}

type DeviceDefineUpdateData struct {
	// 属性
	PropertyData []ProductPropertyValueData `json:"data,omitempty"`
	// 描述
	Descriptions string `json:"descriptions,omitempty" validate:"@string[0,200]"`
	// 图标
	IconUrl string `json:"iconUrl,omitempty"`
	// 定义ID
	ID uint64 `json:"id,string"`
	// 名称
	Name string `json:"name" validate:"@string[1,50]"`
	// 新建设备黑白名单默认状态
	NewDeviceBlacklistWhitelistDefaultType DmsBlacklistWhitelistType `json:"newDeviceBlacklistWhitelistDefaultType"`
	// 老设备黑白名单状态
	OldDeviceBlacklistWhitelistType DmsBlacklistWhitelistType `json:"oldDeviceBlacklistWhitelistType"`
	// 产品黑白名单启用状态
	ProductBlacklistWhitelistType DmsBlacklistWhitelistType `json:"productBlacklistWhitelistType"`
}

type DeviceDetail struct {
	// 设备基本信息
	BaseInfo Device `json:"baseInfo"`
}

type DeviceDetailInfo struct {
	// 业务来源，必填字段
	BusinessFrom string `json:"businessFrom"`
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 数据更新时间,和CreatedAt不同,CreatedAt是本条DB记录的更新时间,DataUpdateTime是包括设备的扩展数据
	DataUpdateTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"dataUpdateTime"`
	// 删除时间
	DeletedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"deletedAt"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 设备定义ID 这个关系到设备类型
	DeviceDefineID uint64 `json:"deviceDefineId,string"`
	// 产品定义名称
	DeviceDefineName string `json:"deviceDefineName"`
	// 设备分组ID
	DeviceGroupID uint64 `json:"deviceGroupId,string"`
	// 设备唯一标示编码
	DeviceUniqueID string `json:"deviceUniqueId"`
	// 分组名称
	GroupName string `json:"groupName"`
	// 分组状态
	GroupStatus DmsGroupStatus `json:"groupStatus"`
	// 内部ID,关联其它数据结构用
	ID uint64 `json:"id,string"`
	// 是否激活
	Active bool `json:"isActive"`
	// 纬度
	Lat string `json:"lat"`
	// 经度
	Lon string `json:"lon"`
	// 名称
	Name string `json:"name"`
	// 节点类型
	NodeType DmsNodeType `json:"nodeType"`
	// 是否在线
	Online bool `json:"online"`
	// 当日在线时长
	OnlineTime int64 `json:"onlineTime"`
	// 启用状态
	Opened GithubComGoCourierSqlxV2DatatypesBool `json:"opened"`
	// 是否可以操作
	Operate bool `json:"operate"`
	// 产品类型
	ProductType string `json:"productType"`
	// 关联状态
	RelevanceType DmsRelevanceType `json:"relevanceType"`
	// 来源
	ShareFrom string `json:"shareFrom"`
	// 被分享的分组名称
	SharedGroupName []string `json:"sharedGroupName"`
	// 被分享分组信息
	SharedGroups []SharedGroup `json:"sharedGroups"`
	// 状态
	Status DmsQueryDeviceType `json:"status"`
	// 标签
	Tag []string `json:"tag"`
	// 顶级组织id
	TopGroupId uint64 `json:"topGroupId,string"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceDetailQueryResp struct {
	// 设备定义信息
	DeviceDefInfo DeviceDefDetailInDB `json:"deviceDefInfo"`
	// 设备详细信息
	DeviceDetail DeviceDetail `json:"deviceDetail"`
}

type DeviceDetailV3 struct {
	// 基本信息
	BasicInfo DeviceBasicInfo `json:"basicInfo"`
	// 设备ID
	DeviceID uint64 `json:"deviceID,string"`
	// 附加属性列表
	ExtraPropertyList []DevicePropertyExtra `json:"extraPropertyList"`
	// 固有属性列表
	FixedPropertyList []DevicePropertyFixed `json:"fixedPropertyList"`
}

type DeviceDevicePropertyFixed struct {
	// 云端值
	ExpectValue string `json:"expectValue"`
	// fixeID
	FixedID uint64 `json:"fixedID,string" validate:"@uint64(0,)"`
}

type DeviceExtraInfo struct {
	// 产品属性ID
	DevicePropertyDefineID uint64 `json:"devicePropertyDefineID,string"`
	// 设备值
	Value string `json:"value"`
}

type DeviceExtraInfoDetail struct {
	// 属性定义信息
	Define DevicePropertyDefineV2 `json:"define"`
	// 附加属性信息
	Info DevicePropertyExtra `json:"info"`
}

type DeviceExtraPropertyGetResp struct {
	Data  []DeviceExtraInfoDetail `json:"data"`
	Total int32                   `json:"total"`
}

type DeviceFixedInfoDetail struct {
	// 属性定义信息
	Define DevicePropertyDefineV2 `json:"define"`
	// 附加属性信息
	Info DevicePropertyFixed `json:"info"`
}

type DeviceFixedPropertyCreateBody struct {
	// 设备属性定义id列表
	DevicePropertyDefineIDList GitQuerycapComToolsDatatypesSFIDs `json:"defineIDList"`
}

type DeviceFixedPropertyGetResp struct {
	Data  []DeviceFixedInfoDetail `json:"data"`
	Total int32                   `json:"total"`
}

type DeviceGroup struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 图标url
	IconUrl string `json:"iconUrl"`
	// 内部ID分组id
	ID uint64 `json:"id,string"`
	// 设备组名称,为了避免混淆,名称不能重复
	Name string `json:"name"`
	// 父组织id
	ParentGroupId uint64 `json:"parentGroupId,string"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceGroupInfo struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 图标url
	IconUrl string `json:"iconUrl"`
	// 内部ID分组id
	ID uint64 `json:"id,string"`
	// 设备组名称,为了避免混淆,名称不能重复
	Name string `json:"name"`
	// 父组织id
	ParentGroupId uint64 `json:"parentGroupId,string"`
	// 角色
	Role DmsDeviceGroupUserRoleType `json:"role"`
	// 更新时间github.com/go-courier/sqlx/v2/datatypes
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceLatestHeartbeatData struct {
	// 心跳数据
	Data string `json:"data"`
	// 心跳时间戳
	Timestamp int64 `json:"timestamp"`
}

type DeviceLatestHeartbeatDataItem struct {
	// 设备ID
	DeviceID GitQuerycapComToolsDatatypesSFID `json:"deviceID"`
	// 最后一次心跳数据
	HeartbeatData DeviceLatestHeartbeatData `json:"heartbeatData"`
}

type DeviceListResp struct {
	// 激活数
	Active int32 `json:"active"`
	// 返回设备
	Devices []DeviceDetailInfo `json:"devices"`
	// 在线数
	Online int32 `json:"online"`
	// 总数
	Total int32 `json:"total"`
}

type DeviceMaintainCreateReq struct {
	// 设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 维护内容
	MaintainContent string `json:"maintainContent"`
	// 维护时间
	MaintainTime int64 `json:"maintainTime"`
	// 维护人
	Maintainer string `json:"maintainer"`
}

type DeviceMaintainRecord struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 设备定义ID, 冗余字段,为了加速查询
	DeviceDefineID uint64 `json:"deviceDefineId"`
	// 设备ID
	DeviceID uint64 `json:"deviceId"`
	// 内部ID
	ID uint64 `json:"id"`
	// 维护内容
	MaintainContent string `json:"maintainContent"`
	// 维护时间
	MaintainTime int64 `json:"maintainTime"`
	// 维护人
	Maintainer string `json:"maintainer"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceMaintainRecordList struct {
	Records []DeviceMaintainRecord `json:"records"`
	Total   int32                  `json:"total"`
}

type DeviceMoveData struct {
	// 设备描述
	Descriptions string `json:"descriptions,omitempty"`
	// 分组ID
	DeviceGroupID uint64 `json:"deviceGroupId,string"`
	// 迁移之前的设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 附加属性列表
	ExtraPropertyList []DeviceExtraInfo `json:"extraPropertyList,omitempty"`
	// 固定属性列表
	FixedPropertyList GitQuerycapComToolsDatatypesSFIDs `json:"fixedPropertyList,omitempty"`
	// 设备名称
	Name string `json:"name"`
	// 标签
	Tags []string `json:"tags,omitempty"`
}

type DeviceMoveResp struct {
	// 新设备ID
	DeviceId uint64 `json:"deviceId,string"`
}

type DeviceOnOffLineRecord struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 是否已读,true表示已读 false表示未读
	HaveRead bool `json:"haveRead"`
	// 内部ID
	ID uint64 `json:"id,string"`
	// 上线状态,true表示在线　false表示离线
	Online bool `json:"online"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceOnlineStateResp struct {
	// 数据
	Data []DeviceOnOffLineRecord `json:"data"`
	// 总数
	Total int32 `json:"total"`
	// 未读
	UnRead int32 `json:"unRead"`
}

type DevicePropertyDefineV2 struct {
	// 表名
	BindTableName string `json:"bindTableName"`
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 数据定义
	DataDefine string `json:"dataDefine"`
	// 数据类型
	DataType DmsDevicePropertyDataType `json:"dataType"`
	// 数据单位
	DataUnit string `json:"dataUnit"`
	// 字段信息
	FieldValueInfoList []FieldValueInfo `json:"fieldValueInfoList"`
	ID                 uint64           `json:"id,string"`
	// 是否必选
	IsMust bool `json:"isMust"`
	// 产品ID
	ProductID uint64 `json:"productID,string"`
	// 描述
	PropertyDesc string `json:"propertyDesc"`
	// Key
	PropertyKey string `json:"propertyKey"`
	// 名称
	PropertyName string `json:"propertyName"`
	// 属性类型
	PropertyType DmsDevicePropertyType `json:"propertyType"`
	// 设备属性展示字段
	ShowDeviceField string `json:"showDeviceField"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DevicePropertyExtra struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 设备ID
	DeviceID uint64 `json:"deviceID,string"`
	// 产品属性ID
	DevicePropertyDefineID uint64 `json:"devicePropertyDefineID,string"`
	// extraID
	ID uint64 `json:"extraID,string"`
	// Key
	PropertyKey string `json:"propertyKey"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
	// 设备值
	Value string `json:"value"`
}

type DevicePropertyExtraData struct {
	ExtraID uint64 `json:"extraID,string" validate:"@uint64(0,)"`
	// 设备值
	Value string `json:"value"`
}

type DevicePropertyFixed struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 设备ID
	DeviceID uint64 `json:"deviceID,string"`
	// 产品属性ID
	DevicePropertyDefineID uint64 `json:"devicePropertyDefineID,string"`
	// 设备值
	DeviceValue string `json:"deviceValue"`
	// 云端值
	ExpectValue string `json:"expectValue"`
	// FixID
	ID uint64 `json:"fixedID,string"`
	// Key
	PropertyKey string `json:"propertyKey"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type DeviceQueryResp struct {
	// 激活数
	Active int32 `json:"active"`
	// 返回设备
	Devices []DeviceDetailInfo `json:"devices"`
	// 在线数
	Online int32 `json:"online"`
	// 总数
	Total int32 `json:"total"`
}

type DeviceRealTimeCount struct {
	// 激活设备数
	Active int32 `json:"active"`
	// 设备定义ID, 如果值为0 则表示所有设备
	DeviceDefineID uint64 `json:"deviceDefineId"`
	// 在线设备数
	Online int32 `json:"online"`
	// 时间
	Time int64 `json:"time"`
	// 设备总数
	Total int32 `json:"total"`
}

type DeviceReportRealTimeCount struct {
	// 设备定义ID
	DeviceDefineID uint64
	// 设备上报数据数量
	ReportCount uint64
	// 时间戳
	TimeStamp int64
}

type DeviceRunStateResp struct {
	Name  string `json:"name"`
	Time  string `json:"time"`
	Type  string `json:"type"`
	UUID  string `json:"uuid"`
	Value string `json:"value"`
}

type DeviceStatisticsResp struct {
	GithubComGoCourierHttptransportHttpxMethodGet
	// 设备相关信息
	DeviceResp GetDeviceCountResp `json:"deviceResp"`
	// 上报相关信息
	ReportResp GetReportCountResp `json:"reportResp"`
}

type DeviceTagInfo struct {
	// 标签
	TagKey string `json:"tagKey,omitempty" validate:"@string[1,128]"`
	// 标签值列表
	TagValueList []string `json:"tagValueList,omitempty"`
}

type DeviceUpdateData struct {
	// 描述
	Descriptions string `json:"descriptions,omitempty"`
	// 设备ID
	DeviceID uint64 `json:"deviceId,string"`
	// 设备名称
	Name string `json:"name"`
	// 标签
	Tags []string `json:"tags,omitempty"`
}

type DeviceV2BaseInfo struct {
	// 子设备ID
	// SubDeviceIDList []datatypes.UUIDs `json:"subDeviceIDList,omitempty"`
	// 是否加设备加入黑名单或白名单
	BlacklistWhitelistType DmsBlacklistWhitelistType `json:"blacklistWhitelistType,omitempty"`
	// 设备描述
	Descriptions string `json:"descriptions,omitempty"`
	// 分组id(默认选择顶级组织id)
	DeviceGroupID uint64 `json:"deviceGroupID,string"`
	// 设备MN号码
	DeviceUniqueID string `json:"deviceUniqueID"`
	// 设备名称
	Name string `json:"name"`
	// 设备定义ID(即产品id)
	ProductID uint64 `json:"productID,string"`
	// 标签
	Tags []string `json:"tags,omitempty"`
}

type DmsBlacklistWhitelistType = IotAPIGatewayDmsBlacklistWhitelistType

type DmsDeviceGroupUserRoleType = IotAPIGatewayDmsDeviceGroupUserRoleType

type DmsDevicePropertyDataType = IotAPIGatewayDmsDevicePropertyDataType

type DmsDevicePropertyType = IotAPIGatewayDmsDevicePropertyType

type DmsDeviceType = IotAPIGatewayDmsDeviceType

type DmsGroupStatus = IotAPIGatewayDmsGroupStatus

type DmsNodeType = IotAPIGatewayDmsNodeType

type DmsOfflineQueryType = IotAPIGatewayDmsOfflineQueryType

type DmsOrderType = IotAPIGatewayDmsOrderType

type DmsProductType = IotAPIGatewayDmsProductType

type DmsPropertyType = IotAPIGatewayDmsPropertyType

type DmsQueryDeviceType = IotAPIGatewayDmsQueryDeviceType

type DmsRelevanceType = IotAPIGatewayDmsRelevanceType

type EnumDefineData struct {
	// 枚举名
	Name string `json:"name"`
	// 枚举值
	Value uint32 `json:"value"`
}

type ExchangeMnData struct {
	// 原设备id
	DeviceId uint64 `json:"deviceId,string"`
	// 新设备mn号
	DeviceUniqueID string `json:"deviceUniqueId"`
}

type ExchangeMnResp struct {
	// 新设备id
	DeviceId GitQuerycapComToolsDatatypesSFID `json:"deviceId"`
}

type FieldValueInfo struct {
	// 字段名
	FieldName string `json:"fieldName" validate:"@string[1,]"`
	// 字段值
	FieldValue string `json:"fieldValue" validate:"@string[1,]"`
}

type GetDeviceBasicInfoResp struct {
	DeviceBasicInfo
}

type GetDeviceCountResp struct {
	// 所有设备数量统计的信息, map的key是设备定义ID, key等于"0"表示全部ID
	DevCount map[string][]DeviceRealTimeCount
}

type GetDeviceGroupDetailResp struct {
	// 激活设备
	Active int32 `json:"active"`
	// 基本信息
	BaseInfo DeviceGroup `json:"baseInfo"`
	// 产品数
	DeviceDefineTotal int32 `json:"deviceDefineTotal"`
	// 分组数量
	GroupTotal int32 `json:"groupTotal"`
	// 消息总数
	MsgTotal int32 `json:"msgTotal"`
	// 在线设备
	Online int32 `json:"online"`
	// 分组标签
	Tags []GroupInfoTag `json:"tags"`
	// 总数
	Total int32 `json:"total"`
	// 未分组数
	UnGroupDeviceTotal int32 `json:"unGroupDeviceTotal"`
}

type GetDeviceGroupResp struct {
	// 分页数据
	Data []DeviceGroup `json:"data"`
	// 总数
	Total int32 `json:"total"`
}

type GetDeviceGroupRespV2 struct {
	// 分页数据
	Data []DeviceGroupInfo `json:"data"`
	// 总数
	Total int32 `json:"total"`
}

type GetDeviceGroupTagsV3Item struct {
	// 设备ID
	DeviceID GitQuerycapComToolsDatatypesSFID `json:"deviceID"`
	// 分组标签信息
	GroupTagInfo *GetGroupInfoTagsResp `json:"groupTagInfo"`
}

type GetDeviceListV3Resp struct {
	// 数据
	Data []DeviceBasicInfo `json:"data"`
	// 总数
	Total int64 `json:"total"`
}

type GetGroupDeviceResp struct {
	// 激活设备
	Active int32 `json:"active"`
	// 分页数据
	Data []Device `json:"data"`
	// 在线设备
	Online int32 `json:"online"`
	// 总数
	Total int32 `json:"total"`
}

type GetGroupInfoTagsResp struct {
	// 分页数据
	Data []GroupInfoTag `json:"data"`
	// 总数
	Total int64 `json:"total"`
}

type GetReportCountResp struct {
	// 所有设备上报数据统计的信息, map的key是设备定义ID, key等于"0"表示全部ID
	DevReportCountMap map[string][]DeviceReportRealTimeCount
}

type GetVidelBackLiveUrlResp struct {
	// 时间数据
	List []GetVideoBackLiveUrlRespData `json:"list"`
	// 回放直播流地址
	Url string `json:"url"`
}

type GetVideoBackLiveUrlRespData struct {
	// 结束时间戳（单位：秒）
	EndTime int64 `json:"endTime"`
	// 大小
	Size uint64 `json:"size"`
	// 开始时间戳（单位：秒）
	StartTime int64 `json:"startTime"`
}

type GetVideoLiveUrlHlsResp struct {
	// 直播流地址
	Url string `json:"url"`
}

type GetVideoLiveUrlResp struct {
	// 直播流地址
	Url string `json:"url"`
}

type GitQuerycapComIotCommonTypeHubProtocolType = IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType

type GitQuerycapComToolsDatatypesSFID = git_querycap_com_tools_datatypes.SFID

type GitQuerycapComToolsDatatypesSFIDs = git_querycap_com_tools_datatypes.SFIDs

type GithubComGoCourierHttptransportHttpxMethodGet = github_com_go_courier_httptransport_httpx.MethodGet

type GithubComGoCourierSqlxV2DatatypesBool = github_com_go_courier_sqlx_v2_datatypes.Bool

type GithubComGoCourierSqlxV2DatatypesTimestamp = github_com_go_courier_sqlx_v2_datatypes.Timestamp

type GithubComGoCourierStatuserrorErrorField = github_com_go_courier_statuserror.ErrorField

type GithubComGoCourierStatuserrorErrorFields = github_com_go_courier_statuserror.ErrorFields

type GithubComGoCourierStatuserrorStatusErr = github_com_go_courier_statuserror.StatusErr

type GroupDeviceCountV3 struct {
	// 产品设备数统计
	DeviceCountInfoList []DeviceCountV3 `json:"deviceCountInfoList"`
	// 分组标签值
	TagValue string `json:"tagValue"`
}

type GroupInfoTag struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 分组id
	GroupID uint64 `json:"groupID,string"`
	// 唯一ID
	ID uint64 `json:"id,string"`
	// 标签
	TagKey string `json:"tagKey"`
	// 标签值
	TagValue string `json:"tagValue"`
	// 顶级组织ID
	TopGroupID string `json:"topGroupID"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type GroupOverview struct {
	// 分组创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 描述
	Desc string `json:"desc"`
	// 分组id
	GroupId GitQuerycapComToolsDatatypesSFID `json:"groupId"`
	// 图标
	IconUrl string `json:"iconUrl"`
	// 分组名称
	Name string `json:"name"`
	// 分组设备在线数
	Online int64 `json:"online"`
	// 父组织名称
	ParentOrgName string `json:"parentOrgName"`
	// 当日上报消息总数
	ReportCount int64 `json:"reportCount"`
	// 角色
	Role DmsDeviceGroupUserRoleType `json:"role"`
	// 分组设备总数
	Total int64 `json:"total"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type HistoryData struct {
	// 污染物名称
	Name string `json:"name"`
	// 上报时间
	Time int64 `json:"time"`
	// 类型
	DataType string `json:"type"`
	// 上报ID
	UUID string `json:"uuid"`
	// 值
	Value string `json:"value"`
}

type HistoryResp struct {
	// 历史数据
	Data []HistoryData `json:"data"`
	// 总数
	Total int32 `json:"total"`
}

type IndexInfo struct {
	// 索引名
	IndexName string `json:"indexName,omitempty" validate:"@string[1,]"`
	// 表名prefix
	PrefixTableName string `json:"prefixTableName" validate:"@string[1,]"`
}

type LocationPoint struct {
	// 纬度
	Lat float64 `json:"lat"`
	// 经度
	Lon float64 `json:"lon"`
}

type LocationPolygon struct {
	// 多边形顶点, 顶点必有序,顺时针或逆时针都可以
	Vertex []LocationPoint `json:"vertex"`
}

type MoveDeviceInGroupResp struct {
	// 移入成功
	Ids GitQuerycapComToolsDatatypesSFIDs `json:"ids"`
}

type MoveDeviceOutGroupResp struct {
	// 移除成功
	Ids GitQuerycapComToolsDatatypesSFIDs `json:"ids"`
}

type OfflineDeviceInfo struct {
	// 设备ID
	DeviceID uint64 `json:"deviceID,string"`
	// 设备MN
	DeviceMN string `json:"deviceMN"`
	// 设备名称
	DeviceName string `json:"deviceName"`
	// 所属分组
	GroupName string `json:"groupName"`
	// 离线频次
	OfflineCount int32 `json:"offlineCount"`
	// 离线时长
	OfflineTime int64 `json:"offlineTime"`
	// 所属产品
	ProductName string `json:"productName"`
	// 最后上报时间
	ReportTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"reportTime"`
}

type OfflineDeviceResp struct {
	// 数据
	Data []OfflineDeviceInfo `json:"data"`
	// 总计
	Total int32 `json:"total"`
}

type OrgDeviceResp struct {
	// 组织创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 分组概览信息
	Data []GroupOverview `json:"data"`
	// 描述
	Desc string `json:"desc"`
	// 设备总数
	DeviceCount int64 `json:"deviceCount"`
	// id
	GroupId GitQuerycapComToolsDatatypesSFID `json:"groupId"`
	// 图标
	IconUrl string `json:"iconUrl"`
	// 消息总数
	MsgTotal int32 `json:"msgTotal"`
	// 分组设备在线数
	Online int64 `json:"online"`
	// 名称
	OrgName string `json:"orgName"`
	// 父组织id
	ParentGroupId GitQuerycapComToolsDatatypesSFID `json:"parentGroupId"`
	// 父组织名称
	ParentOrgName string `json:"parentOrgName"`
	// 顶级组织id
	TopGroupId GitQuerycapComToolsDatatypesSFID `json:"topGroupId"`
	// 组织总数
	Total int64 `json:"total"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type ParamaterCreateErr struct {
	// 错误信息
	ErrorInfo string `json:"errorInfo"`
	// 参数名称
	ParmaterName string `json:"parameterName"`
}

type ParameterDefine struct {
	// 参数名称
	CommandDefineID uint64 `json:"commandDefineId,string"`
	// 描述
	Descriptions string `json:"descriptions"`
	// 内部ID
	ID uint64 `json:"id,string"`
	// 参数名称,为了避免混淆,同一个设备定义,同一种参数,名称不能重复
	Name string `json:"name"`
	// 是否为可选，只对执行参数有用
	Optional bool `json:"optional"`
	// 修改属性
	PropertyDefineID uint64 `json:"propertyDefineId,string"`
	// 命令参数类型，　1:执行参数　2:返回参数 3:绑定下发
	Type uint32 `json:"type"`
}

type ParameterDefineCreateData struct {
	// 命令定义ID
	CommandDefineID uint64 `json:"commandDefineId,string"`
	// 参数描述
	Descriptions string `json:"descriptions"`
	// 参数名称
	Name string `json:"name"`
	// 是否为可选，只对执行参数有用
	Optional bool `json:"optional,omitempty"`
	// 参数对应的设备属性
	PropertyDefineID uint64 `json:"propertyDefineId,omitempty"`
	// 1 执行参数, 2返回参数, 3绑定参数. 执行参数:在命令下发时需要的参数,命令返回时需要的参数. 绑定参数:下发时需要的参数,值不由用户主动填写.自动填对应设备属性值
	Type uint32 `json:"type"`
}

type ParameterDefineData struct {
	// 参数描述
	Descriptions string `json:"descriptions"`
	// 参数名称
	Name string `json:"name"`
	// 是否为可选，只对执行参数有用
	Optional bool `json:"optional,omitempty"`
	// 参数对应的设备属性
	PropertyDefineID uint64 `json:"propertyDefineId,string,omitempty"`
	// 1 执行参数, 2返回参数, 3绑定参数. 执行参数:在命令下发时需要的参数,命令返回时需要的参数. 绑定参数:下发时需要的参数,值不由用户主动填写.自动填对应设备属性值
	Type uint32 `json:"type"`
}

type ParameterDefineUpdateData struct {
	// 描述
	Descriptions string `json:"descriptions"`
	// 名称
	Name string `json:"name"`
	// 是否可选
	Optional bool `json:"optional,omitempty"`
	// 参数定义ID
	ParameterDefineID uint64 `json:"parameterDefineId,string"`
	// 属性定义ID
	PropertyDefineID uint64 `json:"propertyDefineId,string,omitempty"`
	// 1 执行参数, 2返回参数, 3绑定参数. 执行参数:在命令下发时需要的参数,命令返回时需要的参数. 绑定参数:下发时需要的参数,值不由用户主动填写.自动填对应设备属性值
	Type uint32 `json:"type"`
}

type ProductBaseInfo struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 产品描述
	Desc string `json:"desc"`
	// 图标
	IconUrl string `json:"iconUrl"`
	// 节点类型
	NodeType DmsNodeType `json:"nodeType"`
	// 产品ID
	ProductID uint64 `json:"productID,string"`
	// 产品名称
	ProductName string `json:"productName"`
	// 产品类型
	ProductType DmsProductType `json:"productType"`
	TopGroupID  uint64         `json:"topGroupID,string"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
}

type ProductDetail struct {
	// 产品基本信息
	BaseInfo *ProductBaseInfo `json:"baseInfo"`
	// 产品统计信息
	StatisticInfo *ProductStatisticInfo `json:"statisticInfo"`
}

type ProductProperty struct {
	// 创建时间
	CreatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createdAt"`
	// 删除时间
	DeletedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"deletedAt"`
	// 产品属性值ID
	ID uint64 `json:"id,string"`
	// 产品属性名称
	Name string `json:"name"`
	// 产品ID
	ProductId uint64 `json:"productId,string"`
	// 更新时间
	UpdatedAt GithubComGoCourierSqlxV2DatatypesTimestamp `json:"updatedAt"`
	// 产品属性值
	Value string `json:"value"`
}

type ProductPropertyDefineV2 struct {
	// 数据定义数据数组
	DataDefineArray []string `json:"dataDefineArray,omitempty" validate:"@slice<@string[0,50]>[0,100]"`
	// 数据定义boolean类型False
	DataDefineBooleanFalseKey string `json:"dataDefineBooleanFalseKey,omitempty" validate:"@string[0,100]"`
	// 数据定义boolean类型True
	DataDefineBooleanTrueKey string `json:"dataDefineBooleanTrueKey,omitempty" validate:"@string[0,100]"`
	// 数据定义枚举
	DataDefineEnum map[string]string `json:"dataDefineEnum,omitempty"`
	// 数据定义最大值(浮点数)
	DataDefineMaxFloat float64 `json:"dataDefineMaxFloat,string,omitempty"`
	// 数据定义最大值(整形)
	DataDefineMaxInt int64 `json:"dataDefineMaxInt,string,omitempty"`
	// 数据定义最小值(浮点数)
	DataDefineMinFloat float64 `json:"dataDefineMinFloat,string,omitempty"`
	// 数据定义最小值(整形)
	DataDefineMinInt int64 `json:"dataDefineMinInt,string,omitempty"`
	// 数据定义字符串长度
	DataDefineStringLength uint64 `json:"dataDefineStringLength,string,omitempty"`
	// 数据类型
	DataType DmsDevicePropertyDataType `json:"dataType"`
	// 数据单位
	DataUnit string `json:"dataUnit,omitempty" validate:"@string[1,255]"`
	// 是否必选
	IsMust bool `json:"isMust,omitempty"`
	// 描述
	PropertyDesc string `json:"propertyDesc,omitempty" validate:"@string[0,255]"`
	// Key
	PropertyKey string `json:"propertyKey" validate:"@string[1,255]"`
	// 名称
	PropertyName string `json:"propertyName" validate:"@string[1,255]"`
}

type ProductPropertyDefineV2CreateData struct {
	// 固有属性表关联参数
	ProductPropertyFixedDefineTableInfo *ProductPropertyFixedDefineTableInfo `json:"productPropertyFixedDefineTableInfo,omitempty"`
	// 属性参数
	PropertyParam ProductPropertyDefineV2 `json:"propertyParam"`
	// 属性类型
	PropertyType DmsDevicePropertyType `json:"propertyType"`
}

type ProductPropertyDefineV2PutData struct {
	// 属性ID
	DevicePropertyDefineID uint64 `json:"devicePropertyDefineID,string"`
	// 固有属性参数
	ProductPropertyFixedDefineTableInfo *ProductPropertyFixedDefineTableInfo `json:"productPropertyFixedDefineTableInfo,omitempty"`
	// 属性参数
	PropertyParam ProductPropertyDefineV2 `json:"propertyParam"`
}

type ProductPropertyFixedDefineTableInfo struct {
	// 字段信息
	FieldInfoList []FieldValueInfo `json:"fieldInfoList" validate:"@slice[1,]"`
	// 设备值字段
	ShowDeviceField string `json:"showDeviceField" validate:"@string[1,]"`
	// 表名
	TableName string `json:"tableName"`
}

type ProductPropertyGetResp struct {
	Data  []DevicePropertyDefineV2 `json:"data"`
	Total int32                    `json:"total"`
}

type ProductPropertyValueData struct {
	// 名称
	Name string `json:"name"`
	// 属性值
	Value string `json:"value,omitempty"`
}

type ProductResp struct {
	// 产品列表
	Data []DeviceDefine `json:"data"`
	// 总数
	Total int32 `json:"total"`
}

type ProductStatisticInfo struct {
	// 当日上报消息数
	DailyReportNum uint64 `json:"dailyReportNum"`
	// 最后上报时间
	DataUpdateTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"dataUpdateTime"`
	// 设备总数
	DeviceCount int64 `json:"deviceCount"`
	// 离线设备数
	OfflineCount int64 `json:"offlineCount"`
	// 在线设备数
	OnlineCount int64 `json:"onlineCount"`
}

type PropertyDefineCreateData struct {
	// 描述
	Descriptions string `json:"descriptions"`
	// 设备定义ID
	DeviceDefineID uint64 `json:"deviceDefineId,string"`
	// 枚举定义
	EnumDefine []EnumDefineData `json:"enumDefine,omitempty"`
	// 是否必填
	IsMust bool `json:"isMust,omitempty"`
	// 名称
	Name string `json:"name"`
	// 属性类型
	PropertyType DmsPropertyType `json:"propertyType,omitempty"`
	// 是否系统维护,系统维护的可直接平台修改,否则需要设备命令修改
	SystemMaintain bool `json:"systemMaintain,omitempty"`
}

type PropertyDefineUpdateData struct {
	// 属性描述
	Descriptions string `json:"descriptions"`
	// 枚举定义
	EnumDefine []EnumDefineData `json:"enumDefine,omitempty"`
	// 是否必填
	IsMust bool `json:"isMust,omitempty"`
	// 属性名称
	Name string `json:"name"`
	// 属性定义ID
	PropertyDefineID uint64 `json:"propertyDefineId,string"`
	// 属性类型
	PropertyType DmsPropertyType `json:"propertyType,omitempty"`
	// 是否系统维护,系统维护的可直接平台修改,否则需要设备命令修改
	SystemMaintain bool `json:"systemMaintain,omitempty"`
}

type QueryDeviveByLocationResp struct {
	// 设备数据列表
	DevDataList []DeviceBriefInfo `json:"devDataList"`
}

type RawDataGetReq struct {
	// 设备号
	DeviceIDs GitQuerycapComToolsDatatypesSFIDs `json:"deviceIDs"`
	// 索引信息
	IndexInfoList []IndexInfo `json:"indexInfoList"`
}

type RawDataGetResp struct {
	Data []RawDataGetRespItem `json:"data"`
}

type RawDataGetRespItem struct {
	// 数据信息
	Data []RawDataResult `json:"data"`
	// 设备号
	DeviceID GitQuerycapComToolsDatatypesSFID `json:"deviceID"`
}

type RawDataResult struct {
	// 数据
	DataList []map[string]string `json:"dataList"`
	// 索引名
	IndexName string `json:"indexName"`
	// 表名prefix
	PrefixTableName string `json:"prefixTableName"`
}

type RegisterDeviceEncryptionKeyReq struct {
	// 密钥生成时间
	CreateTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"createTime"`
	// 设备MN
	DeviceMN string `json:"deviceMn"`
	// 生效时间
	EffectiveTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"effectiveTime"`
	// 密钥
	EncryptionKey string `json:"encryptionKey"`
	// 密钥ID
	EncryptionKeyID uint64 `json:"encryptionKeyId,string"`
	// 失效时间
	ExpireTime GithubComGoCourierSqlxV2DatatypesTimestamp `json:"expireTime"`
}

type SharedGroup struct {
	ID   uint64 `json:"id,string"`
	Name string `json:"name"`
}

type SubDeviceListResp struct {
	// 信息
	Data []DeviceDetailInfo `json:"data"`
	// 总数
	Total int32 `json:"total"`
}

type TimeDuration = time.Duration

type UpdateDeviceGroupData struct {
	// 描述
	Descriptions string `json:"descriptions,omitempty" validate:"@string[1,300]"`
	// 图标地址
	IconUrl string `json:"iconUrl,omitempty"`
	// 名称
	Name string `json:"name" validate:"@string[1,50]"`
}

type IotAPIGatewayDmsBlacklistWhitelistType string

const (
	IOT_API_GATEWAY_DMS_BLACKLIST_WHITELIST_TYPE__BLACKLIST   IotAPIGatewayDmsBlacklistWhitelistType = "BLACKLIST"   // 启用黑名单
	IOT_API_GATEWAY_DMS_BLACKLIST_WHITELIST_TYPE__NOT_ENABLED IotAPIGatewayDmsBlacklistWhitelistType = "NOT_ENABLED" // 不启用黑白名单
	IOT_API_GATEWAY_DMS_BLACKLIST_WHITELIST_TYPE__WHITELIST   IotAPIGatewayDmsBlacklistWhitelistType = "WHITELIST"   // 启用白名单
)

type IotAPIGatewayDmsDeviceGroupUserRoleType string

const (
	IOT_API_GATEWAY_DMS_DEVICE_GROUP_USER_ROLE_TYPE__ADMIN            IotAPIGatewayDmsDeviceGroupUserRoleType = "ADMIN"            // 管理员
	IOT_API_GATEWAY_DMS_DEVICE_GROUP_USER_ROLE_TYPE__MEMBER           IotAPIGatewayDmsDeviceGroupUserRoleType = "MEMBER"           // 成员
	IOT_API_GATEWAY_DMS_DEVICE_GROUP_USER_ROLE_TYPE__READ_ONLY_MEMBER IotAPIGatewayDmsDeviceGroupUserRoleType = "READ_ONLY_MEMBER" // 只读成员
)

type IotAPIGatewayDmsDevicePropertyDataType string

const (
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__ARRAY              IotAPIGatewayDmsDevicePropertyDataType = "ARRAY"              // 数组
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__BOOLEAN            IotAPIGatewayDmsDevicePropertyDataType = "BOOLEAN"            // 布尔
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__ENUM               IotAPIGatewayDmsDevicePropertyDataType = "ENUM"               // 枚举
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__FLOAT              IotAPIGatewayDmsDevicePropertyDataType = "FLOAT"              // 浮点数
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__INTEGER            IotAPIGatewayDmsDevicePropertyDataType = "INTEGER"            // 整数
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__LATITUDE_LONGITUDE IotAPIGatewayDmsDevicePropertyDataType = "LATITUDE_LONGITUDE" // 经纬度
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_DATA_TYPE__STRING             IotAPIGatewayDmsDevicePropertyDataType = "STRING"             // 字符串
)

type IotAPIGatewayDmsDevicePropertyType string

const (
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_TYPE__EXTRA IotAPIGatewayDmsDevicePropertyType = "EXTRA" // 附加属性
	IOT_API_GATEWAY_DMS_DEVICE_PROPERTY_TYPE__FIXED IotAPIGatewayDmsDevicePropertyType = "FIXED" // 固有属性
)

type IotAPIGatewayDmsDeviceType string

const (
	IOT_API_GATEWAY_DMS_DEVICE_TYPE__OWNER  IotAPIGatewayDmsDeviceType = "OWNER"  // 拥有
	IOT_API_GATEWAY_DMS_DEVICE_TYPE__SHARE  IotAPIGatewayDmsDeviceType = "SHARE"  // 共享
	IOT_API_GATEWAY_DMS_DEVICE_TYPE__SHARER IotAPIGatewayDmsDeviceType = "SHARER" // 共享者
)

type IotAPIGatewayDmsGroupStatus string

const (
	IOT_API_GATEWAY_DMS_GROUP_STATUS__GROUP   IotAPIGatewayDmsGroupStatus = "GROUP"   // 分组
	IOT_API_GATEWAY_DMS_GROUP_STATUS__UNGROUP IotAPIGatewayDmsGroupStatus = "UNGROUP" // 未分组
)

type IotAPIGatewayDmsNodeType string

const (
	IOT_API_GATEWAY_DMS_NODE_TYPE__DIRECT     IotAPIGatewayDmsNodeType = "DIRECT"     // 直连设备
	IOT_API_GATEWAY_DMS_NODE_TYPE__GATEWAY    IotAPIGatewayDmsNodeType = "GATEWAY"    // 网关设备
	IOT_API_GATEWAY_DMS_NODE_TYPE__SUB_DEVICE IotAPIGatewayDmsNodeType = "SUB_DEVICE" // 网关子设备
)

type IotAPIGatewayDmsOfflineQueryType string

const (
	IOT_API_GATEWAY_DMS_OFFLINE_QUERY_TYPE__FREQUENCY IotAPIGatewayDmsOfflineQueryType = "FREQUENCY" // 频次
	IOT_API_GATEWAY_DMS_OFFLINE_QUERY_TYPE__TIME      IotAPIGatewayDmsOfflineQueryType = "TIME"      // 时长
)

type IotAPIGatewayDmsOrderType string

const (
	IOT_API_GATEWAY_DMS_ORDER_TYPE__ASC  IotAPIGatewayDmsOrderType = "ASC"  // 升序
	IOT_API_GATEWAY_DMS_ORDER_TYPE__DESC IotAPIGatewayDmsOrderType = "DESC" // 降序
)

type IotAPIGatewayDmsProductType string

const (
	IOT_API_GATEWAY_DMS_PRODUCT_TYPE__NORMAL IotAPIGatewayDmsProductType = "NORMAL" // 非视频类
	IOT_API_GATEWAY_DMS_PRODUCT_TYPE__VIDEO  IotAPIGatewayDmsProductType = "VIDEO"  // 视频类
)

type IotAPIGatewayDmsPropertyType string

const (
	IOT_API_GATEWAY_DMS_PROPERTY_TYPE__BUSINESS IotAPIGatewayDmsPropertyType = "BUSINESS" // 企业编码
	IOT_API_GATEWAY_DMS_PROPERTY_TYPE__ENUM     IotAPIGatewayDmsPropertyType = "ENUM"     // 枚举
	IOT_API_GATEWAY_DMS_PROPERTY_TYPE__LAT      IotAPIGatewayDmsPropertyType = "LAT"      // 纬度
	IOT_API_GATEWAY_DMS_PROPERTY_TYPE__LONG     IotAPIGatewayDmsPropertyType = "LONG"     // 经度
	IOT_API_GATEWAY_DMS_PROPERTY_TYPE__NORMAL   IotAPIGatewayDmsPropertyType = "NORMAL"   // 普通
)

type IotAPIGatewayDmsQueryDeviceType string

const (
	IOT_API_GATEWAY_DMS_QUERY_DEVICE_TYPE__ACTIVE   IotAPIGatewayDmsQueryDeviceType = "ACTIVE"   // 激活
	IOT_API_GATEWAY_DMS_QUERY_DEVICE_TYPE__ALL      IotAPIGatewayDmsQueryDeviceType = "ALL"      // 所有
	IOT_API_GATEWAY_DMS_QUERY_DEVICE_TYPE__NOACTIVE IotAPIGatewayDmsQueryDeviceType = "NOACTIVE" // 未激活
	IOT_API_GATEWAY_DMS_QUERY_DEVICE_TYPE__OFFLINE  IotAPIGatewayDmsQueryDeviceType = "OFFLINE"  // 离线
	IOT_API_GATEWAY_DMS_QUERY_DEVICE_TYPE__ONLINE   IotAPIGatewayDmsQueryDeviceType = "ONLINE"   // 在线
)

type IotAPIGatewayDmsRelevanceType string

const (
	IOT_API_GATEWAY_DMS_RELEVANCE_TYPE__DONE   IotAPIGatewayDmsRelevanceType = "DONE"   // 关联
	IOT_API_GATEWAY_DMS_RELEVANCE_TYPE__UNDONE IotAPIGatewayDmsRelevanceType = "UNDONE" // 未关联
)

type IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType string

const (
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__BINARY_ECO                   IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "BINARY_ECO"                   // 生态绿码二进制协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__EDGE_ROCKONTROL              IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "EDGE_ROCKONTROL"              // 罗克佳华版本的边缘小站协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_2017                   IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_2017"                   // hj212 2017版本
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_2017_GATEWAY           IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_2017_GATEWAY"           // hj212 2017版本的网关协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_ANKERUI_GATEWAY        IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_ANKERUI_GATEWAY"        // 安科瑞的工况hj212协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_HUANKE_GATEWAY         IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_HUANKE_GATEWAY"         // 北京环科颗粒物监测仪器hj212协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_JIAYOUZHAN             IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_JIAYOUZHAN"             // 重庆北碚加油站hj212协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_ROCKONTROL             IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_ROCKONTROL"             // 罗克佳华版本的hj212协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_ROCKONTROL_GATEWAY     IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_ROCKONTROL_GATEWAY"     // hj212 罗克佳华版本的网关协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_TAIGANG_BENGFANG       IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_TAIGANG_BENGFANG"       // 太钢泵房hj212协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_TIANJIN_NINGHE_GATEWAY IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_TIANJIN_NINGHE_GATEWAY" // 天津宁河设备hj212协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__HJ212_VEHICLE                IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "HJ212_VEHICLE"                // 罗克佳华车载协议
	IOT_API_GATEWAY_GIT_QUERYCAP_COM_IOT_COMMON_TYPE_HUB_PROTOCOL_TYPE__VIDEO_PLATFORM_ROCKONTROL    IotAPIGatewayGitQuerycapComIotCommonTypeHubProtocolType = "VIDEO_PLATFORM_ROCKONTROL"    // 罗克佳华版本的视频平台协议
)
